#pragma once
#include "ScenePrecompiled.hxx"

namespace Eifersucht
{


	/// Prototypes
	// Represents scene child transformation
	struct TransformationData; TinyTypeDecl(TransformationData);

	/// Implementation

	struct TransformationData			// Represents scene child transformation
	{
		enum class RotationOrder
		{
			EulerXYZ,
			EulerXZY,
			EulerYZX,
			EulerYXZ,
			EulerZXY,
			EulerZYX,
			SphericXYZ
		};

		Reign::Vector3 LclTranslationMax;			
		Reign::Vector3 LclTranslationMin;
		Reign::Vector3 LclTranslation;			

		RotationOrder LclRotationOrder;
		Reign::Vector3 LclRotationOffset;		
		Reign::Vector3 LclRotationPivot;				
		Reign::Vector3 LclPostRotation;				
		Reign::Vector3 LclPreRotation;			
		Reign::Vector3 LclRotationMax;	
		Reign::Vector3 LclRotationMin;			
		Reign::Vector3 LclRotation;			

		Reign::Vector3 LclScalePivot;				
		Reign::Vector3 LclScaleMax;				
		Reign::Vector3 LclScaleMin;				
		Reign::Vector3 LclScale;	

		Reign::Vector3 GeometricTranslation;			
		Reign::Vector3 GeometricRotation;			
		Reign::Vector3 GeometricScale;			

	};
};